
import { ExtractPropTypes } from 'vue'
import { validatorColorValue, validatorSizeValue } from '../../utils'

/**
 * props参数
 */
export const scrollListProps = {
  /** 显示指示器 */
  indicator: {
    type: Boolean,
    default: true
  },
  /** 指示器容器宽度, 单位rpx */
  indicatorWidth: {
    type: [String, Number],
    default: 60,
    validator: (value: string | number) => {
      return validatorSizeValue(value)
    }
  },
  /** 指示器滑块宽度, 单位rpx */
  indicatorBarWidth: {
    type: [String, Number],
    default: 20,
    validator: (value: string | number) => {
      return validatorSizeValue(value)
    }
  },
  /** 指示器容器的颜色, 支持内置颜色的值、十六进制、rgb()、rgba()的值 */
  indicatorColor: {
    type: String,
    default: '',
    validator: (value: string) => {
      return validatorColorValue('bg', value)
    }
  },
  /** 指示器滑块的颜色, 支持内置颜色的值、十六进制、rgb()、rgba()的值 */
  indicatorbarColor: {
    type: String,
    default: '',
    validator: (value: string) => {
      return validatorColorValue('bg', value)
    }
  },
  /** 自定义样式 */
  customStyle: {
    type: Object,
    default: () => {
      return {}
    }
  }
}
export type ScrollListProps = ExtractPropTypes<typeof scrollListProps>

export const scrollListEmits = {
  /** 滑动到最左边 */
  left: () => true,
  /** 滑动到最右边 */
  right: () => true
}
export type ScrollListEmits = typeof scrollListEmits
